%include "nodo.mac"

;void inicializar_nodo(Nodo* nuevo, SDL_Surface *surfacePers, SDL_Surface *surfaceGen, Uint32 x, Uint32 y, Uint32 ID)
global inicializar_nodo

%define nuevo [ebp + 8]
%define surfacePers [ebp + 12]
%define surfaceGen [ebp + 16]
%define x [ebp + 20]
%define y [ebp + 24]
%define ID [ebp + 28]
section .text


inicializar_nodo:

	push ebp			; creo el marco de la pila
	mov ebp, esp

	push ebx			; salvo registros convencion C
	push edi	
	push esi	


	mov eax, nuevo			; seteo properties al nuevo nodo

	xor ebx, ebx
	mov ebx, surfacePers
	mov [eax + _surfacePers], ebx

	xor ebx, ebx
	mov ebx, surfaceGen
	mov [eax + _surfaceGen], ebx

	xor ebx, ebx
	mov ebx, x
	mov [eax + _x], ebx

	xor ebx, ebx
	mov ebx, y
	mov [eax + _y], ebx

	xor ebx, ebx
	mov ebx, ID
	mov [eax + _ID], ebx		; mueve ID de 32 bits a la parte hi

	xor ebx, ebx
	mov [eax + _ID + 4], ebx	; limpio la parte lo

	xor ebx, ebx
	mov [eax + _prox], ebx
	
	xor ebx, ebx
	mov [eax + _prev], ebx

fin:
	pop esi				; desarmo el marco de pila
	pop edi		
	pop ebx		
	pop ebp		

	ret
